home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / amos / amosmultienv11.lha / AmosMultiEnv / GetAMOSEnv.e < prev    next >
Text File  |  1992-02-26  |  2KB  |  98 lines

  1. /* Copies a selected Envoironment to T:AMOS1_3.Env */
  2.  
  3. MODULE 'ReqTools','libraries/reqtools','utility/tagitem','Dos/Dos'
  4.  
  5.  
  6. PROC main()
  7.  
  8.   DEF filename[108]:STRING
  9.   DEF infile,outfile,buffer,filesize
  10.   DEF amossys[40]:STRING
  11.  
  12.   /* Set the default AMOS_System path if no arguments */
  13.  
  14.   IF arg [] <= 0
  15.     amossys := 'SYS:AMOS_System'
  16.   ELSE
  17.     StrCopy(amossys,arg,ALL)
  18.   ENDIF
  19.     
  20.   /* get The filename */
  21.  
  22.   IF (filename := filereq(arg)) = '' THEN CleanUp(1)
  23.  
  24.   /* Copy the file */
  25.  
  26.   IF (infile := Open(filename,MODE_OLDFILE)) = 0
  27.     WriteF('Could Not Load Envoironment\n')
  28.     CleanUp(1)
  29.   ENDIF
  30.  
  31.   IF (outfile := Open('T:AMOS1_3.Env',MODE_NEWFILE)) = 0
  32.     WriteF('Could Not Open T:AMOS1_3.Env\n')
  33.     Close(infile)
  34.     CleanUp(1)
  35.   ENDIF
  36.  
  37.   buffer := New(filesize := FileLength(filename))
  38.   
  39.  
  40.   IF Read(infile,buffer,filesize) <> filesize
  41.     WriteF('Error Reading Envoironment\n') 
  42.     Close(outfile)
  43.     Close(infile)
  44.     CleanUp(1)
  45.   ENDIF
  46.  
  47.  
  48.   IF Write(outfile,buffer,filesize) <> filesize
  49.     WriteF('Error Writing Envoironment\n')
  50.     Close(outfile)
  51.     Close(infile)
  52.     CleanUp(1)
  53.   ENDIF
  54.  
  55.   Close(outfile)
  56.   Close(infile)
  57.  
  58. ENDPROC
  59.  
  60.  
  61.  
  62. PROC filereq(amossys)
  63.  
  64.   CONST FILEREQ=0,REQINFO=1
  65.  
  66.   DEF filebuf[120]:STRING
  67.   DEF dirbuf[256]:STRING
  68.   DEF req:PTR TO rtfilerequester
  69.   DEF tempstr[1]:STRING
  70.  
  71.   IF reqtoolsbase:=OpenLibrary('reqtools.library',37)
  72.  
  73.     /* Setup the requester */
  74.  
  75.     IF req:=RtAllocRequestA(FILEREQ,0)
  76.       filebuf := 'AMOS1_3.Env'
  77.       RtChangeReqAttrA(req,[RTFI_DIR,amossys,RTFI_MATCHPAT,'#?.Env',TAG_DONE])
  78.       RtFileRequestA(req,filebuf,'Select AMOS Envoironment',[RTFI_FLAGS,FREQF_PATGAD,TAG_DONE])
  79.  
  80.       /* combine the directory & filename */
  81.  
  82.       StrCopy(dirbuf,req.dir,ALL)
  83.       RtFreeRequest(req)
  84.       RightStr(tempstr,dirbuf,1)
  85.       IF StrCmp(tempstr,':',1)=FALSE THEN StrAdd(dirbuf,'/',ALL)
  86.       StrAdd(dirbuf,filebuf,ALL)
  87.  
  88.     ENDIF
  89.  
  90.     CloseLibrary(reqtoolsbase)
  91.   ELSE
  92.  
  93.     WriteF('Could not open reqtools.library!\n')
  94.  
  95.   ENDIF
  96.  
  97. ENDPROC dirbuf
  98.